package org.javahispano.javacup.tacticas_aceptadas.jcrosas.chuky.util;

import org.javahispano.javacup.modelo.Constantes;
import org.javahispano.javacup.modelo.Posicion;

/**
 * @author Joan Crosas
 *
 */
public class PosicionBalon extends PosicionCampo {
	private final double altura;

	public PosicionBalon( PosicionBalon posicionBalon ) {
		super( posicionBalon );
		this.altura = posicionBalon.getAltura();
	}
	
	public PosicionBalon( PosicionCampo posicion, double altura ) {
		super( posicion );
		this.altura = altura;
	}
	
	public PosicionBalon( Posicion posicion, double altura ) {
		super( posicion );
		this.altura = altura;
	}
	
	public PosicionBalon( double x, double y, double altura ) {
		this( new Posicion(x,y), altura );
	}
	
	public PosicionBalon moverPosicionBalon( double dx, double dy, double altura ) {
		return new PosicionBalon( this.moverPosicion( dx, dy ), altura );
	}
	
	public boolean isGol() {
		if( Math.abs(getY()) >= Constantes.LARGO_CAMPO_JUEGO / 2 ) {
			if( altura <= Constantes.ALTO_ARCO ) {
                double abs = Math.abs(getX());
                if( abs < Constantes.LARGO_ARCO / 2 - Constantes.RADIO_BALON ) {
                    return true;
                }
			}
		}
		return false;
	}
	
	public boolean isCasiGol() {
		if( Math.abs(getY()) >= Constantes.LARGO_CAMPO_JUEGO / 2 ) {
			if ( altura <= Constantes.ALTO_ARCO) {
                double abs = Math.abs(getX());
                if( abs <= Constantes.LARGO_ARCO / 2 ) {
                    return true;
                }
			}
		}
		return false;
	}
	
	public double getAltura() {
		return altura;
	}
	
	public String toString() {
		return super.toString() + ":" + altura;
	}

}
